package com.baofu.paycore.dal.mapper;

import com.baofu.paycore.dal.model.RefundProductStrategyDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 产品退款策略关联信息表
 * <p>
 * 1、
 * </p>
 * User: xin deng  Date: 16/4/21 ProjectName: paycore Version: 1.0
 */
public interface RefundProductStrategyMapper {

    /**
     * 新增产品退款策略关联信息
     *
     * @param refundProductStrategyDO  新增参数对象
     * @return                           新增记录数
     */
    int insert(RefundProductStrategyDO refundProductStrategyDO);

    /**
     * 更新产品退款策略关联信息
     *
     * @param refundProductStrategyDO  更新参数对象
     * @return                           新增记录数
     */
    int update(RefundProductStrategyDO refundProductStrategyDO);

    /**
     * 查询产品退款策略关联信息
     *
     * @param refundProductStrategyDO  查询参数对象
     * @return
     */
    List<RefundProductStrategyDO> selectInfo(RefundProductStrategyDO refundProductStrategyDO);

    /**
     * 分页查询产品退款策略关联信息
     *
     * @param bean                      查询参数对象
     * @param beginPage                 开始页
     * @param endPage                   结束页
     * @return
     */
    List<RefundProductStrategyDO> selectInfoByPage(@Param("bean")RefundProductStrategyDO bean,
                                                   @Param("beginPage") int beginPage,
                                                   @Param("endPage") int endPage);

    /**
     * 查询产品退款策略关联信息总数
     *
     * @param bean                     查询参数对象
     * @return                         总数
     */
    int selectInfoCount(@Param("bean")RefundProductStrategyDO bean);

    /**
     * 删除产品退款策略关联信息
     *
     * @param updatedBy                 更新人
     * @param id                        记录Id
     * @return                          删除记录数
     */
    int deleteInfo(@Param("updatedBy")String updatedBy,@Param("id") long id);

    /**
     * 根据业务类型查询产品退款关联关系
     *
     * @param bizType       业务大类
     * @param subBizType    业务细类
     * @return              产品退款关联关系信息
     */
    RefundProductStrategyDO selectByBizType(@Param("bizType")    String bizType,
                                            @Param("subBizType") String subBizType);

    /**
     * 依ID查询产品退款关联关系
     *
     * @param id        id
     * @return          查询产品退款关联关系
     */
    RefundProductStrategyDO selectById(@Param("id") String id);
}
